// requset 请求 
import router from "@/router"; // 默认index
import axios from "axios"
import { Notification } from 'element-ui'; //js

//  通过 axios 创造一个请求的实例
//   三个配置  
//  基础路径baseURL 每次我们发生请求 都会自动携带这个基础路径
const request = axios.create({
    baseURL: '/api', // 意味着通过  request 对象 发生请求 默认自动开头拼接  http://127.0.0.1:3200
    // 不加http 会自动根据当前的域名来拼接
    timeout: 1000 * 30,  // 超时时间, 如果请求 经过 timoout秒后 会主动 停止并且报错
    headers: {} // 请求头 ContenType  
    //  每次发送请求的时候 自动携带这个请求头     
});
// request 是一个请求器 
// es6 暴露方式 

// 添加请求拦截器
request.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    config.headers.authorization = localStorage.getItem("token")
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});


//  响应拦截器 所有的请求 返回数据 都会被我们处理

request.interceptors.response.use(function (response) {
    // 对响应数据做点什么

    if (response.data.code == 40003) {
        // alert("请重新登录")

        Notification({
            title: '警告',
            message: '用户身份或者权限不足过期, 请重新登录',
            type: 'warning'
        });
        localStorage.clear()
        router.replace({ name: "login" })
        // $router
    } else if (response.data.code != 2000) {
        Notification({
            title: '警告',
            message: response.data.message || "失败",
            type: 'warning'
        });
    }

    return response.data;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default request